package com.cuz.hot100;

public class Q66plusOne {
    public static int[] solution5(int[] num) {
        if (num == null || num.length == 0) {
            return num;
        }
        boolean hasCarry = false;
        int lastValue = num[num.length - 1] + 1;
        if (lastValue >= 10) {
            lastValue = lastValue % 10;
            hasCarry = true;
        }
        num[num.length - 1] = lastValue;
        if (!hasCarry) {
            return num;
        }
        for (int i = num.length - 2; i >= 0; i--) {
            num[i] = num[i] + 1;
            if (num[i] >= 10) {
                num[i] = num[i] % 10;
            } else {
                return num;
            }
        }
        int[] res = new int[num.length + 1];
        res[0] = 1;
        for (int i = 0; i < num.length; i++) {
            res[i + 1] = num[i];
        }
        return res;
    }
}
